{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"Ethnicity Recognition.ipynb","provenance":[],"collapsed_sections":[],"toc_visible":true,"machine_shape":"hm","mount_file_id":"1cj2d9mrTNSWYEefKLrpPp0CDQ4W7RnUu","authorship_tag":"ABX9TyPal/4tZ5UJVkLgWLMvRc3/"},"kernelspec":{"name":"python3","display_name":"Python 3"},"accelerator":"GPU"},"cells":[{"cell_type":"code","metadata":{"id":"MD6BI6BVatSi","colab_type":"code","outputId":"57cd7789-827e-4527-94c9-fc73f6c465dd","executionInfo":{"status":"ok","timestamp":1585181560763,"user_tz":-480,"elapsed":44284,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":258}},"source":["!pip install tensorflow-gpu"],"execution_count":1,"outputs":[{"output_type":"stream","text":["Collecting tensorflow-gpu\n","\u001b[?25l  Downloading https://files.pythonhosted.org/packages/0a/93/c7bca39b23aae45cd2e85ad3871c81eccc63b9c5276e926511e2e5b0879d/tensorflow_gpu-2.1.0-cp36-cp36m-manylinux2010_x86_64.whl (421.8MB)\n","\u001b[K     |████████████████████████████████| 421.8MB 36kB/s \n","\u001b[?25hRequirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow-gpu) (1.1.0)\n","Requirement already satisfied: keras-applications>=1.0.8 in /usr/local/lib/python3.6/dist-packages (from tensorflow-gpu) (1.0.8)\n","Requirement already satisfied: wrapt>=1.11.1 in /usr/local/lib/python3.6/dist-packages (from tensorflow-gpu) (1.12.1)\n","Requirement already satisfied: grpcio>=1.8.6 in /usr/local/lib/python3.6/dist-packages (from tensorflow-gpu) (1.24.3)\n","Requirement already satisfied: absl-py>=0.7.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow-gpu) (0.9.0)\n","Requirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.6/dist-packages (from tensorflow-gpu) (3.2.0)\n","Collecting tensorboard<2.2.0,>=2.1.0\n","\u001b[?25l  Downloading https://files.pythonhosted.org/packages/d9/41/bbf49b61370e4f4d245d4c6051dfb6db80cec672605c91b1652ac8cc3d38/tensorboard-2.1.1-py3-none-any.whl (3.8MB)\n","\u001b[K     |████████████████████████████████| 3.9MB 55.8MB/s \n","\u001b[31mERROR: Operation cancelled by user\u001b[0m\n","\u001b[?25h"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"rwJfwLza44jG","colab_type":"code","outputId":"200e60d7-95d7-4156-d915-9e831f34d836","executionInfo":{"status":"ok","timestamp":1585116087884,"user_tz":-480,"elapsed":2586,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"source":["import tensorflow as tf\n","tf.__version__"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["'2.1.0'"]},"metadata":{"tags":[]},"execution_count":2}]},{"cell_type":"code","metadata":{"id":"zhF3UULY_6KQ","colab_type":"code","outputId":"e3bfd3bc-f1da-47e5-b1b8-8872c8ad7b5c","executionInfo":{"status":"ok","timestamp":1585181565751,"user_tz":-480,"elapsed":3775,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":85}},"source":["%tensorflow_version 2.x\n","\n","import tensorflow as tf\n","print(tf.__version__)\n","print(tf.test.gpu_device_name())\n","print(\"Num GPUs Available: \", len(tf.config.experimental.list_physical_devices('GPU')))"],"execution_count":2,"outputs":[{"output_type":"stream","text":["TensorFlow 2.x selected.\n","2.1.0\n","/device:GPU:0\n","Num GPUs Available:  1\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"j83QxCBFlus4","colab_type":"code","outputId":"aace2d94-0f4f-4b1f-832a-8ec34a39e4ec","executionInfo":{"status":"error","timestamp":1584773550848,"user_tz":-480,"elapsed":2432,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":527}},"source":["%load_ext autoreload\n","%autoreload 2\n","from google.colab import drive\n","import sys\n","from pathlib import Path\n","drive.mount(\"/content/drive\",force_remount=True)"],"execution_count":0,"outputs":[{"output_type":"error","ename":"KeyboardInterrupt","evalue":"ignored","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)","\u001b[0;32m/usr/local/lib/python3.6/dist-packages/ipykernel/kernelbase.py\u001b[0m in \u001b[0;36m_input_request\u001b[0;34m(self, prompt, ident, parent, password)\u001b[0m\n\u001b[1;32m    729\u001b[0m             \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 730\u001b[0;31m                 \u001b[0mident\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreply\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msession\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstdin_socket\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    731\u001b[0m             \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.6/dist-packages/jupyter_client/session.py\u001b[0m in \u001b[0;36mrecv\u001b[0;34m(self, socket, mode, content, copy)\u001b[0m\n\u001b[1;32m    802\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 803\u001b[0;31m             \u001b[0mmsg_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msocket\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv_multipart\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    804\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mzmq\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mZMQError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.6/dist-packages/zmq/sugar/socket.py\u001b[0m in \u001b[0;36mrecv_multipart\u001b[0;34m(self, flags, copy, track)\u001b[0m\n\u001b[1;32m    465\u001b[0m         \"\"\"\n\u001b[0;32m--> 466\u001b[0;31m         \u001b[0mparts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mflags\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtrack\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtrack\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    467\u001b[0m         \u001b[0;31m# have first part already, only loop while more to receive\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32mzmq/backend/cython/socket.pyx\u001b[0m in \u001b[0;36mzmq.backend.cython.socket.Socket.recv\u001b[0;34m()\u001b[0m\n","\u001b[0;32mzmq/backend/cython/socket.pyx\u001b[0m in \u001b[0;36mzmq.backend.cython.socket.Socket.recv\u001b[0;34m()\u001b[0m\n","\u001b[0;32mzmq/backend/cython/socket.pyx\u001b[0m in \u001b[0;36mzmq.backend.cython.socket._recv_copy\u001b[0;34m()\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.6/dist-packages/zmq/backend/cython/checkrc.pxd\u001b[0m in \u001b[0;36mzmq.backend.cython.checkrc._check_rc\u001b[0;34m()\u001b[0m\n","\u001b[0;31mKeyboardInterrupt\u001b[0m: ","\nDuring handling of the above exception, another exception occurred:\n","\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)","\u001b[0;32m<ipython-input-3-befea5ce15e3>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0msys\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mpathlib\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mPath\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mdrive\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmount\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"/content/drive\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mforce_remount\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m","\u001b[0;32m/usr/local/lib/python3.6/dist-packages/google/colab/drive.py\u001b[0m in \u001b[0;36mmount\u001b[0;34m(mountpoint, force_remount, timeout_ms, use_metadata_server)\u001b[0m\n\u001b[1;32m    236\u001b[0m       \u001b[0mauth_prompt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgroup\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m'\\nEnter your authorization code:\\n'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    237\u001b[0m       \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfifo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'w'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mfifo_file\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 238\u001b[0;31m         \u001b[0mfifo_file\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwrite\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_getpass\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetpass\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mauth_prompt\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m'\\n'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    239\u001b[0m       \u001b[0mwrote_to_fifo\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    240\u001b[0m   \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mwrote_to_fifo\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.6/dist-packages/ipykernel/kernelbase.py\u001b[0m in \u001b[0;36mgetpass\u001b[0;34m(self, prompt, stream)\u001b[0m\n\u001b[1;32m    686\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_parent_ident\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    687\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_parent_header\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 688\u001b[0;31m             \u001b[0mpassword\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    689\u001b[0m         )\n\u001b[1;32m    690\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.6/dist-packages/ipykernel/kernelbase.py\u001b[0m in \u001b[0;36m_input_request\u001b[0;34m(self, prompt, ident, parent, password)\u001b[0m\n\u001b[1;32m    733\u001b[0m             \u001b[0;32mexcept\u001b[0m \u001b[0mKeyboardInterrupt\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    734\u001b[0m                 \u001b[0;31m# re-raise KeyboardInterrupt, to truncate traceback\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 735\u001b[0;31m                 \u001b[0;32mraise\u001b[0m \u001b[0mKeyboardInterrupt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    736\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    737\u001b[0m                 \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mKeyboardInterrupt\u001b[0m: "]}]},{"cell_type":"code","metadata":{"id":"nC5TgLMs69RF","colab_type":"code","outputId":"8c9b5163-8d46-4255-a3da-61cd9cb5e55d","executionInfo":{"status":"ok","timestamp":1585181596303,"user_tz":-480,"elapsed":22880,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":51}},"source":["from pathlib import Path\n","import sys\n","\n","base=Path('/content/drive/My Drive/fairface-img-margin025-trainval.zip')\n","sys.path.append(str(base))\n","\n","%time\n","!cp \"{base}\" .\n","!unzip -q \"/content/drive/My Drive/fairface-img-margin025-trainval.zip\"\n","#!rm \"/content/drive/My Drive/fairface-img-margin025-trainval.zip\""],"execution_count":3,"outputs":[{"output_type":"stream","text":["CPU times: user 2 µs, sys: 1 µs, total: 3 µs\n","Wall time: 4.53 µs\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"rdazTzk0xmJJ","colab_type":"text"},"source":["# New Section"]},{"cell_type":"markdown","metadata":{"id":"xYswyXjNmnQw","colab_type":"text"},"source":["START\n"]},{"cell_type":"code","metadata":{"id":"SKuLK2566zPc","colab_type":"code","outputId":"3991c1f5-0996-4083-c34e-1433d5cdb20f","executionInfo":{"status":"ok","timestamp":1585186161633,"user_tz":-480,"elapsed":5616,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":750}},"source":["from matplotlib import pyplot as plt\n","import numpy as np\n","import pandas as pd\n","import os, random, cv2\n","%matplotlib inline\n","train_df = pd.read_csv(\"/content/drive/My Drive/train.csv\")\n","val_df=pd.read_csv(\"/content/drive/My Drive/val.csv\")\n","val_df.head()\n","labels_map = {}\n","inv_labels_map = {}\n","count = 0\n","num_samples=0\n","for label in val_df['race']:\n","  num_samples=num_samples+1\n","  if(label in labels_map):\n","    continue\n","  labels_map[label] = count\n","  inv_labels_map[count] = label\n","  count=count+1\n","print(\"Label Map: \", labels_map)\n","print(\"No. of Labels are: \", count)\n","print(\"Total No. of samples\",num_samples)\n","labels_count = {}\n","for label in val_df['race']:\n","  if(label in labels_count):\n","    labels_count[label] = labels_count[label] + 1\n","  else:\n","    labels_count[label] = 0\n","print(labels_count)\n","plt.figure(figsize=(40,10))\n","plt.bar(list(labels_count.keys()), list(labels_count.values()),width=0.6)\n","plt.xticks(rotation = 90)\n","plt.show()"],"execution_count":4,"outputs":[{"output_type":"stream","text":["Label Map:  {'East Asian': 0, 'White': 1, 'Latino_Hispanic': 2, 'Southeast Asian': 3, 'Black': 4, 'Indian': 5, 'Middle Eastern': 6}\n","No. of Labels are:  7\n","Total No. of samples 10954\n","{'East Asian': 1549, 'White': 2084, 'Latino_Hispanic': 1622, 'Southeast Asian': 1414, 'Black': 1555, 'Indian': 1515, 'Middle Eastern': 1208}\n"],"name":"stdout"},{"output_type":"display_data","data":{"image/png":"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\nofft7nu6+3h3H19bW9vNFgEAAAAAAAAAYF8cudgLq+pnkvxEkjcvr6dKdz+b5Nnl+JGqejLJa5I8\nlW9/3dXVywwAAAAAAAAAAA6li3piTlXdmOSXk/xkd39zZb5WVZctxz+Y5FiSr3T32STfqKobqqqS\nvCvJp3a9ewAAAAAAAAAAOKC2fWJOVd2X5E1JrqiqM0nuSvKBJK9I8tD5ziYPd/f7kvx4kg9W1f9L\n8jdJ3tfd55Zb/VySe5P8vSSfWT4AAAAAAAAAAHAobRvmdPetm4w/usXa+5Pcv8W59SSvvaDdAQAA\nAAAAAADAJeqiXmUFAAAAAAAAAAC8NGEOAAAAAAAAAAAMEOYAAAAAAAAAAMAAYQ4AAAAAAAAAAAwQ\n5gAAAAAAAAAAwIAj+70BAAAAAAAAANhLR+98YL+3AGNOn7hpv7fABfDEHAAAAAAAAAAAGCDMAQAA\nAAAAAACAAcIcAAAAAAAAAAAYIMwBAAAAAAAAAIABwhwAAAAAAAAAABggzAEAAAAAAAAAgAHCHAAA\nAAAAAAAAGCDMAQAAAAAAAACAAcIcAAAAAAAAAAAYIMwBAAAAAAAAAIABwhwAAAAAAAAAABggzAEA\nAAAAAAAAgAHCHAAAAAAAAAAAGCDMAQAAAAAAAACAAcIcAAAAAAAAAAAYIMwBAAAAAAAAAIABwhwA\nAAAAAAAAABggzAEAAAAAAAAAgAHCHAAAAAAAAAAAGCDMAQAAAAAAAACAAcIcAAAAAAAAAAAYIMwB\nAAAAAAAAAIABwhwAAAAAAAAAABggzAEAAAAAAAAAgAHCHAAAAAAAAAAAGCDMAQAAAAAAAACAAcIc\nAAAAAAAAAAAYIMwBAAAAAAAAAIABwhwAAAAAAAAAABggzAEAAAAAAAAAgAHCHAAAAAAAAAAAGCDM\nAQAAAAAAAACAAcIcAAAAAAAAAAAYIMwBAAAAAAAAAIABwhwAAAAAAAAAABggzAEAAAAAAAAAgAHC\nHAAAAAAAAAAAGCDMAQAAAAAAAACAAcIcAAAAAAAAAAAYIMwBAAAAAAAAAIABwhwAAAAAAAAAABgg\nzAEAAAAAAAAAgAHCHAAAAAAAAAAAGCDMAQAAAAAAAACAAcIcAAAAAAAAAAAYIMwBAAAAAAAAAIAB\nwhwAAAAAAAAAABiwozCnqk5W1TNV9fjK7Puq6qGqemL59/JlXlX1kao6VVWPVdWPrlxz27L+iaq6\n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\nKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAA\nAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAA\nAAAAAMAaKOYAAAAAAAAAAOuFSeEAACAASURBVMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYA\nAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAa\nKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAA\nAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAA\nAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYA\nAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAa\nKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAA\nAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAaKOYAAAAAAAAAAMAa7LqY0/ak\ntq9u+1dt3972Kavxp7W9tO2Fq8fXbXvNj7Z9V9t3tH3Q9fEfAAAAAAAAAAAAm+iYw3jtlUl+YGYu\naHt8kvPbvnJ17Jdm5ue3/3HbU5N8S5K7JfmCJP9P2zvPzFWHkQEAAAAAAAAAADbSrmfMmZn3z8wF\nq+3Lk1yc5DbX8ZKHJ/ndmbliZt6T5F1JvnS37w8AAAAAAAAAAJts18Wc7drePsm9kvzFauhJbS9q\n+9ttb7Eau02Sv972sr/JtRR52j6x7Xltz/vgBz94fUQEAAAAAAAAAIA9ddjFnLY3TfL7Sb5vZi5L\n8mtJ7pTknknen+QXdvpvzsxZM3PGzJxx4oknHm5EAAAAAAAAAADYc4dVzGl7o2yVcp43My9Kkpn5\nwMxcNTOfSPIb+dRyVZcmOWnby2+7GgMAAAAAAAAAgCPOros5bZvkt5JcPDO/uG381tv+7BuSvG21\n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\n","text/plain":["<Figure size 2880x720 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"cell_type":"code","metadata":{"id":"H1J-zoImSoPo","colab_type":"code","outputId":"bcbf1ba1-cdb3-4ded-8cbe-9bd2023cf03a","executionInfo":{"status":"ok","timestamp":1585116270323,"user_tz":-480,"elapsed":2519,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":419}},"source":["train_df"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>file</th>\n","      <th>age</th>\n","      <th>gender</th>\n","      <th>race</th>\n","      <th>service_test</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>train/1.jpg</td>\n","      <td>50-59</td>\n","      <td>Male</td>\n","      <td>East Asian</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>train/2.jpg</td>\n","      <td>30-39</td>\n","      <td>Female</td>\n","      <td>Indian</td>\n","      <td>False</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>train/3.jpg</td>\n","      <td>3-9</td>\n","      <td>Female</td>\n","      <td>Black</td>\n","      <td>False</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>train/4.jpg</td>\n","      <td>20-29</td>\n","      <td>Female</td>\n","      <td>Indian</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>train/5.jpg</td>\n","      <td>20-29</td>\n","      <td>Female</td>\n","      <td>Indian</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>...</th>\n","      <td>...</td>\n","      <td>...</td>\n","      <td>...</td>\n","      <td>...</td>\n","      <td>...</td>\n","    </tr>\n","    <tr>\n","      <th>86739</th>\n","      <td>train/86740.jpg</td>\n","      <td>20-29</td>\n","      <td>Male</td>\n","      <td>Indian</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>86740</th>\n","      <td>train/86741.jpg</td>\n","      <td>10-19</td>\n","      <td>Male</td>\n","      <td>Indian</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>86741</th>\n","      <td>train/86742.jpg</td>\n","      <td>more than 70</td>\n","      <td>Female</td>\n","      <td>Indian</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>86742</th>\n","      <td>train/86743.jpg</td>\n","      <td>10-19</td>\n","      <td>Female</td>\n","      <td>Black</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>86743</th>\n","      <td>train/86744.jpg</td>\n","      <td>40-49</td>\n","      <td>Male</td>\n","      <td>White</td>\n","      <td>False</td>\n","    </tr>\n","  </tbody>\n","</table>\n","<p>86744 rows × 5 columns</p>\n","</div>"],"text/plain":["                  file           age  gender        race  service_test\n","0          train/1.jpg         50-59    Male  East Asian          True\n","1          train/2.jpg         30-39  Female      Indian         False\n","2          train/3.jpg           3-9  Female       Black         False\n","3          train/4.jpg         20-29  Female      Indian          True\n","4          train/5.jpg         20-29  Female      Indian          True\n","...                ...           ...     ...         ...           ...\n","86739  train/86740.jpg         20-29    Male      Indian          True\n","86740  train/86741.jpg         10-19    Male      Indian          True\n","86741  train/86742.jpg  more than 70  Female      Indian          True\n","86742  train/86743.jpg         10-19  Female       Black          True\n","86743  train/86744.jpg         40-49    Male       White         False\n","\n","[86744 rows x 5 columns]"]},"metadata":{"tags":[]},"execution_count":3}]},{"cell_type":"code","metadata":{"id":"G4EFEoak_qz2","colab_type":"code","outputId":"99b2f8a5-f26e-4e83-c779-33ac92964c35","executionInfo":{"status":"ok","timestamp":1585096823473,"user_tz":-480,"elapsed":1274,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":320}},"source":["example_img = random.choice(os.listdir(\"train\"))\n","print(\"Label:\", train_df.loc[train_df['file'] == example_img[:-4]]['race'].all())\n","example_img = plt.imread(\"train/\"+example_img)\n","plt.grid(False)\n","plt.imshow(example_img)\n","print(\"Shape of the image is:\", example_img.shape)\n","print(\"Max:\", example_img.max(), \", Min:\", example_img.min())\n"],"execution_count":0,"outputs":[{"output_type":"stream","text":["Label: True\n","Shape of the image is: (224, 224, 3)\n","Max: 203 , Min: 0\n"],"name":"stdout"},{"output_type":"display_data","data":{"image/png":"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\nOf4PwRtX+WByrIAAAAAASUVORK5CYII=\n","text/plain":["<Figure size 432x288 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"cell_type":"code","metadata":{"id":"2udOA-Irs2IM","colab_type":"code","outputId":"38fce19d-d344-4233-ae3f-fd564913737d","executionInfo":{"status":"error","timestamp":1584923074523,"user_tz":-480,"elapsed":877,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":231}},"source":["for layer in model.layers:\n","    if isinstance(layer, BatchNormalization):\n","        layer.trainable = True\n","    else:\n","        layer.trainable = True\n","for layer in model.layers:\n","        if hasattr(layer, 'moving_mean') and hasattr(layer, 'moving_variance'):\n","            layer.trainable = True\n","            K.eval(K.update(layer.moving_mean, K.zeros_like(layer.moving_mean)))\n","            K.eval(K.update(layer.moving_variance, K.zeros_like(layer.moving_variance)))\n","        else:\n","            layer.trainable = False"],"execution_count":0,"outputs":[{"output_type":"error","ename":"NameError","evalue":"ignored","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)","\u001b[0;32m<ipython-input-9-6cb690bcd148>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mlayer\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlayers\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlayer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mBatchNormalization\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m         \u001b[0mlayer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrainable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m         \u001b[0mlayer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrainable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mNameError\u001b[0m: name 'model' is not defined"]}]},{"cell_type":"code","metadata":{"id":"RYarfSVAFqi_","colab_type":"code","colab":{}},"source":["from tensorflow.keras.applications.xception import Xception,preprocess_input\n","from tensorflow.keras import backend as K\n","from tensorflow.keras.optimizers import SGD\n","from tensorflow.keras.layers import Dense,GlobalMaxPooling2D,Flatten,Dropout,BatchNormalization,InputLayer\n","from tensorflow.keras.models import Model\n","\n","K.set_learning_phase(0)\n","\n","base_model = Xception(weights='imagenet', include_top=False, input_shape=(224,224,3),pooling='avg')\n","\n","for layer in base_model.layers:\n","    layer.trainable = False\n","\n","K.set_learning_phase(1)\n","\n","base=Dense(7, activation='softmax')(base_model.output)\n","model=Model(base_model.input,base)\n","model.compile(loss='categorical_crossentropy',\n","             optimizer=SGD(lr=0.045, momentum=0.9,decay=0.5), \n","             metrics=['accuracy'])"],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"colab_type":"code","outputId":"c2da106a-4c53-432d-933d-528a741ca868","executionInfo":{"status":"ok","timestamp":1584932622056,"user_tz":-480,"elapsed":2849,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"id":"JE-RCMhkBGma","colab":{"base_uri":"https://localhost:8080/","height":419}},"source":["\n","from tensorflow.keras.layers import Dense,GlobalMaxPooling2D,Flatten,Dropout,BatchNormalization,InputLayer\n","from tensorflow.keras.models import Model,Sequential\n","from tensorflow.keras.preprocessing.image import ImageDataGenerator\n","from tensorflow.keras.callbacks import EarlyStopping,ModelCheckpoint,ReduceLROnPlateau\n","from tensorflow.keras.optimizers import RMSprop\n","from tensorflow.keras import backend as K\n","from tensorflow.keras.applications.xception import Xception,preprocess_input\n","reduce=ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=10, min_delta=1E-7)\n","nn=Xception(include_top=False, layers=tf.keras.layers,weights='imagenet',input_shape=(224,224,3),pooling='avg')\n","nn.trainable = True\n","for layer in nn.layers:\n","    if isinstance(layer, BatchNormalization):\n","        layer.trainable = True\n","    else:\n","        layer.trainable = False\n","output=Dense(7,activation='softmax')(nn.output)\n","model=Model(nn.input,output)\n","model.compile(loss='categorical_crossentropy',\n","              optimizer=RMSprop(0.001),\n","              metrics=['accuracy'])\n","\n","layers = [(layer, layer.name, layer.trainable) for layer in model.layers]\n","pd.DataFrame(layers, columns=['Layer Type', 'Layer Name', 'Layer Trainable'])   "],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>Layer Type</th>\n","      <th>Layer Name</th>\n","      <th>Layer Trainable</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>&lt;tensorflow.python.keras.engine.input_layer.In...</td>\n","      <td>input_2</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>&lt;tensorflow.python.keras.layers.convolutional....</td>\n","      <td>block1_conv1</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>&lt;tensorflow.python.keras.layers.normalization_...</td>\n","      <td>block1_conv1_bn</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>&lt;tensorflow.python.keras.layers.core.Activatio...</td>\n","      <td>block1_conv1_act</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>&lt;tensorflow.python.keras.layers.convolutional....</td>\n","      <td>block1_conv2</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>...</th>\n","      <td>...</td>\n","      <td>...</td>\n","      <td>...</td>\n","    </tr>\n","    <tr>\n","      <th>129</th>\n","      <td>&lt;tensorflow.python.keras.layers.convolutional....</td>\n","      <td>block14_sepconv2</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>130</th>\n","      <td>&lt;tensorflow.python.keras.layers.normalization_...</td>\n","      <td>block14_sepconv2_bn</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>131</th>\n","      <td>&lt;tensorflow.python.keras.layers.core.Activatio...</td>\n","      <td>block14_sepconv2_act</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>132</th>\n","      <td>&lt;tensorflow.python.keras.layers.pooling.Global...</td>\n","      <td>global_average_pooling2d_1</td>\n","      <td>True</td>\n","    </tr>\n","    <tr>\n","      <th>133</th>\n","      <td>&lt;tensorflow.python.keras.layers.core.Dense obj...</td>\n","      <td>dense_1</td>\n","      <td>True</td>\n","    </tr>\n","  </tbody>\n","</table>\n","<p>134 rows × 3 columns</p>\n","</div>"],"text/plain":["                                            Layer Type  ... Layer Trainable\n","0    <tensorflow.python.keras.engine.input_layer.In...  ...            True\n","1    <tensorflow.python.keras.layers.convolutional....  ...            True\n","2    <tensorflow.python.keras.layers.normalization_...  ...            True\n","3    <tensorflow.python.keras.layers.core.Activatio...  ...            True\n","4    <tensorflow.python.keras.layers.convolutional....  ...            True\n","..                                                 ...  ...             ...\n","129  <tensorflow.python.keras.layers.convolutional....  ...            True\n","130  <tensorflow.python.keras.layers.normalization_...  ...            True\n","131  <tensorflow.python.keras.layers.core.Activatio...  ...            True\n","132  <tensorflow.python.keras.layers.pooling.Global...  ...            True\n","133  <tensorflow.python.keras.layers.core.Dense obj...  ...            True\n","\n","[134 rows x 3 columns]"]},"metadata":{"tags":[]},"execution_count":9}]},{"cell_type":"code","metadata":{"id":"bQKeO_554O3O","colab_type":"code","colab":{}},"source":["\n","nn.trainable = True\n","for layer in nn.layers:\n","    if isinstance(layer, BatchNormalization):\n","        layer.trainable = True\n","    else:\n","        layer.trainable = False\n","model.compile(loss='categorical_crossentropy',\n","              optimizer=Adam(0.0005),\n","              metrics=['accuracy'])\n","\n","layers = [(layer, layer.name, layer.trainable) for layer in model.layers]\n","pd.DataFrame(layers, columns=['Layer Type', 'Layer Name', 'Layer Trainable'])   "],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"colab_type":"code","id":"Q2T5hnxnBD1q","colab":{}},"source":["layers = [(layer, layer.name, layer.trainable) for layer in model.layers[0].layers]\n","pd.DataFrame(layers, columns=['Layer Type', 'Layer Name', 'Layer Trainable'])\n","from tensorflow.keras.optimizers import Adam\n","#model.compile(loss='categorical_crossentropy',optimizer=Adam(0.0005),metrics=['accuracy']) "],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"ienV2LNBXnI8","colab_type":"code","colab":{}},"source":["from tensorflow.keras.models import load_model\n","model=load_model('/content/drive/My Drive/CV6.h5')"],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"YBKWzsaiv8tm","colab_type":"code","outputId":"9fa87ca0-9329-4952-8b80-4453384c3058","executionInfo":{"status":"error","timestamp":1585125210114,"user_tz":-480,"elapsed":33572,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":348}},"source":["from tensorflow.keras.models import load_model\n","from tensorflow.keras.layers import Dense,GlobalMaxPooling2D,Flatten,Dropout,BatchNormalization,InputLayer\n","from tensorflow.keras.models import Model,Sequential\n","from tensorflow.keras.preprocessing.image import ImageDataGenerator\n","from tensorflow.keras.callbacks import EarlyStopping,ModelCheckpoint\n","from tensorflow.keras.optimizers import Adam,RMSprop,SGD\n","from tensorflow.keras import backend as K\n","from tensorflow.keras.models import Model,Sequential,load_model\n","from tensorflow.keras.preprocessing.image import ImageDataGenerator\n","from tensorflow.keras.callbacks import EarlyStopping,ModelCheckpoint,ReduceLROnPlateau\n","from tensorflow.keras.applications.xception import Xception,preprocess_input\n","model=load_model('/content/drive/My Drive/CV6.h5')\n","reduce=ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=10, min_delta=1E-7) \n","train_datagen = ImageDataGenerator(horizontal_flip = True,\n","                                    rotation_range=10,\n","                                   width_shift_range=0.2,\n","                                    height_shift_range=0.2,\n","                                     shear_range=0.2,\n","                                    zoom_range=0.2,\n","                                   preprocessing_function=preprocess_input,)\n","test_datagen = ImageDataGenerator(preprocessing_function=preprocess_input,)\n","\n","train_generator=train_datagen.flow_from_dataframe(\n","dataframe=train_df,\n","directory=\"/content\",\n","x_col=\"file\",\n","y_col=\"race\",\n","batch_size=64,\n","seed=9,\n","shuffle=True,\n","class_mode=\"categorical\",\n","target_size=(224,224))\n","\n","valid_generator=test_datagen.flow_from_dataframe(\n","dataframe=val_df,\n","directory=\"/content\",\n","x_col=\"file\",\n","y_col=\"race\",\n","batch_size=64,\n","seed=8,\n","shuffle=True,\n","class_mode=\"categorical\",\n","target_size=(224,224))\n","STEP_SIZE_TRAIN = train_generator.n//train_generator.batch_size\n","STEP_SIZE_VALID = valid_generator.n//valid_generator.batch_size\n","early = EarlyStopping(monitor='accuracy', min_delta=0, patience=10, verbose=1, mode='auto')\n","checkpoint = ModelCheckpoint(\"CV6.h5\", monitor='val_accuracy', verbose=0, save_best_only=True, save_weights_only=False, mode='auto', period=1)\n","history = model.fit_generator(generator=train_generator,\n","                         steps_per_epoch=STEP_SIZE_TRAIN,\n","                         epochs=10,\n","                         validation_data=valid_generator,\n","                         validation_steps=STEP_SIZE_VALID,callbacks=[early,checkpoint,reduce])\n","model.save('CV6.h5')"],"execution_count":0,"outputs":[{"output_type":"display_data","data":{"text/html":["<p style=\"color: red;\">\n","The default version of TensorFlow in Colab will switch to TensorFlow 2.x on the 27th of March, 2020.<br>\n","We recommend you <a href=\"https://www.tensorflow.org/guide/migrate\" target=\"_blank\">upgrade</a> now\n","or ensure your notebook will continue to use TensorFlow 1.x via the <code>%tensorflow_version 1.x</code> magic:\n","<a href=\"https://colab.research.google.com/notebooks/tensorflow_version.ipynb\" target=\"_blank\">more info</a>.</p>\n"],"text/plain":["<IPython.core.display.HTML object>"]},"metadata":{"tags":[]}},{"output_type":"stream","text":["WARNING:tensorflow:From /tensorflow-1.15.0/python3.6/tensorflow_core/python/ops/resource_variable_ops.py:1630: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.\n","Instructions for updating:\n","If using Keras pass *_constraint arguments to layers.\n"],"name":"stdout"},{"output_type":"error","ename":"NameError","evalue":"ignored","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)","\u001b[0;32m<ipython-input-1-dc9c00e29663>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m     22\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     23\u001b[0m train_generator=train_datagen.flow_from_dataframe(\n\u001b[0;32m---> 24\u001b[0;31m \u001b[0mdataframe\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtrain_df\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     25\u001b[0m \u001b[0mdirectory\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"/content\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     26\u001b[0m \u001b[0mx_col\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"file\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mNameError\u001b[0m: name 'train_df' is not defined"]}]},{"cell_type":"code","metadata":{"id":"8Dk2rZYg1mJc","colab_type":"code","outputId":"8ad5ff53-4999-40c3-ad87-795295e4dad5","executionInfo":{"status":"ok","timestamp":1584943141769,"user_tz":-480,"elapsed":10494400,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":598}},"source":["STEP_SIZE_TRAIN = train_generator.n//train_generator.batch_size\n","STEP_SIZE_VALID = valid_generator.n//valid_generator.batch_size\n","early = EarlyStopping(monitor='accuracy', min_delta=0, patience=10, verbose=1, mode='auto')\n","checkpoint = ModelCheckpoint(\"CV4.h5\", monitor='accuracy', verbose=0, save_best_only=True, save_weights_only=False, mode='auto', period=1)\n","history = model.fit(generator=train_generator,\n","                         steps_per_epoch=STEP_SIZE_TRAIN,\n","                         epochs=10,\n","                         validation_data=valid_generator,\n","                         validation_steps=STEP_SIZE_VALID,callbacks=[early,checkpoint,reduce])\n","model.save('CV4.h5')"],"execution_count":0,"outputs":[{"output_type":"stream","text":["WARNING:tensorflow:`period` argument is deprecated. Please use `save_freq` to specify the frequency in number of samples seen.\n","WARNING:tensorflow:From <ipython-input-11-434040d92e61>:9: Model.fit_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.\n","Instructions for updating:\n","Please use Model.fit, which supports generators.\n","WARNING:tensorflow:sample_weight modes were coerced from\n","  ...\n","    to  \n","  ['...']\n","WARNING:tensorflow:sample_weight modes were coerced from\n","  ...\n","    to  \n","  ['...']\n","Train for 2710 steps, validate for 342 steps\n","Epoch 1/10\n","2710/2710 [==============================] - 1063s 392ms/step - loss: 1.4415 - accuracy: 0.4330 - val_loss: 1.2207 - val_accuracy: 0.5601\n","Epoch 2/10\n","2710/2710 [==============================] - 1048s 387ms/step - loss: 1.1257 - accuracy: 0.5698 - val_loss: 1.3048 - val_accuracy: 0.5388\n","Epoch 3/10\n","2710/2710 [==============================] - 1048s 387ms/step - loss: 1.0397 - accuracy: 0.6036 - val_loss: 1.2630 - val_accuracy: 0.5773\n","Epoch 4/10\n","2710/2710 [==============================] - 1047s 386ms/step - loss: 0.9877 - accuracy: 0.6227 - val_loss: 1.0862 - val_accuracy: 0.5888\n","Epoch 5/10\n","2710/2710 [==============================] - 1047s 386ms/step - loss: 0.9486 - accuracy: 0.6400 - val_loss: 1.2792 - val_accuracy: 0.5466\n","Epoch 6/10\n","2710/2710 [==============================] - 1047s 386ms/step - loss: 0.9169 - accuracy: 0.6536 - val_loss: 1.2123 - val_accuracy: 0.5684\n","Epoch 7/10\n","2710/2710 [==============================] - 1047s 386ms/step - loss: 0.8920 - accuracy: 0.6619 - val_loss: 1.1189 - val_accuracy: 0.6074\n","Epoch 8/10\n","2710/2710 [==============================] - 1046s 386ms/step - loss: 0.8678 - accuracy: 0.6721 - val_loss: 1.0184 - val_accuracy: 0.6477\n","Epoch 9/10\n","2710/2710 [==============================] - 1048s 387ms/step - loss: 0.8477 - accuracy: 0.6791 - val_loss: 0.9546 - val_accuracy: 0.6525\n","Epoch 10/10\n","2710/2710 [==============================] - 1047s 387ms/step - loss: 0.8268 - accuracy: 0.6869 - val_loss: 0.9822 - val_accuracy: 0.6416\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"e9rT-h3jwa7v","colab_type":"code","colab":{}},"source":["model.save('CV6.h5')"],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"8l7qRNXPww4Z","colab_type":"code","outputId":"d17a572f-add6-42c3-d3b1-43ca2c489353","executionInfo":{"status":"ok","timestamp":1584943883114,"user_tz":-480,"elapsed":1087,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":573}},"source":["from matplotlib import pyplot as plt\n","plt.plot(history.history['accuracy'])\n","plt.plot(history.history['val_accuracy'])\n","plt.title('model accuracy')\n","plt.ylabel('accuracy')\n","plt.xlabel('epoch')\n","plt.legend(['train', 'val'], loc='upper left')\n","plt.show()\n","plt.plot(history.history['loss'])\n","plt.plot(history.history['val_loss'])\n","plt.title('model loss')\n","plt.ylabel('loss')\n","plt.xlabel('epoch')\n","plt.legend(['train', 'val'], loc='upper left')\n","plt.show()"],"execution_count":0,"outputs":[{"output_type":"display_data","data":{"image/png":"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\n9f8BBdh7+M1GcNgAAAAASUVORK5CYII=\n","text/plain":["<Figure size 432x288 with 1 Axes>"]},"metadata":{"tags":[]}},{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["<Figure size 432x288 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"cell_type":"code","metadata":{"id":"4ZKSlM3landg","colab_type":"code","outputId":"1d8ca588-407f-44bc-c7b9-19c460b30f7a","executionInfo":{"status":"ok","timestamp":1585118155397,"user_tz":-480,"elapsed":34151,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":119}},"source":["from tensorflow.keras.applications.xception import preprocess_input\n","from tensorflow.keras.preprocessing.image import ImageDataGenerator\n","\n","test_datagen = ImageDataGenerator(preprocessing_function=preprocess_input,)\n","valid_generator=test_datagen.flow_from_dataframe(\n","dataframe=val_df,\n","directory=\"/content\",\n","x_col=\"file\",\n","y_col=\"race\",\n","batch_size=64,\n","seed=8,\n","shuffle=True,\n","class_mode=\"categorical\",\n","classes=['East Asian', 'Indian', 'Black', 'White','Middle Eastern', 'Latino_Hispanic', 'Southeast Asian'],\n","target_size=(224,224))\n","\n","STEP_SIZE_VALID = valid_generator.n//valid_generator.batch_size\n","model.evaluate_generator(generator=valid_generator,\n","steps=STEP_SIZE_VALID)"],"execution_count":0,"outputs":[{"output_type":"stream","text":["Found 10954 validated image filenames belonging to 7 classes.\n","WARNING:tensorflow:sample_weight modes were coerced from\n","  ...\n","    to  \n","  ['...']\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/plain":["[0.8235632226481076, 0.70358187]"]},"metadata":{"tags":[]},"execution_count":19}]},{"cell_type":"code","metadata":{"id":"2CXzwH5cbE7r","colab_type":"code","outputId":"da30c8c9-9e50-4eff-abdf-01cb01584141","executionInfo":{"status":"ok","timestamp":1585186281869,"user_tz":-480,"elapsed":1387,"user":{"displayName":"Joe Ng","photoUrl":"","userId":"06592263399503581712"}},"colab":{"base_uri":"https://localhost:8080/","height":153}},"source":["from tensorflow.keras.applications.xception import preprocess_input\n","from tensorflow.keras.preprocessing.image import ImageDataGenerator\n","train_datagen = ImageDataGenerator(horizontal_flip = True,\n","                                    rotation_range=10,\n","                                   width_shift_range=0.2,\n","                                    height_shift_range=0.2,\n","                                     shear_range=0.2,\n","                                    zoom_range=0.2,\n","                                   preprocessing_function=preprocess_input,)\n","train_generator=train_datagen.flow_from_dataframe(\n","dataframe=train_df,\n","directory=\"/content\",\n","x_col=\"file\",\n","y_col=\"race\",\n","batch_size=64,\n","seed=9,\n","shuffle=True,\n","class_mode=\"categorical\",\n","target_size=(224,224))\n","train_generator.class_indices"],"execution_count":7,"outputs":[{"output_type":"stream","text":["Found 86744 validated image filenames belonging to 7 classes.\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/plain":["{'Black': 0,\n"," 'East Asian': 1,\n"," 'Indian': 2,\n"," 'Latino_Hispanic': 3,\n"," 'Middle Eastern': 4,\n"," 'Southeast Asian': 5,\n"," 'White': 6}"]},"metadata":{"tags":[]},"execution_count":7}]}]}